Protocolo HTTP

Introducción

HTTP (Hypertext Transfer Protocol) es un protocolo para el intercambio de información utilizando páginas web. Recordando el modelo TCP/IP, donde se diferencian diferentes niveles: físico, enlace, red, transporte y aplicación, el protocolo HTTP pertenece a la capa de aplicación.

Para localizar un recurso de manera unívoca en la red, se utilizan URLs (Uniform Resource Locator) localizador de recursos uniforme.

Para especificar URLs se pueden utilizar diferentes protocolos: HTTP, HTTPS, FTP, etc.

 

Protocolo://usuario:contraseña@maquina:puerto/directorio/archivo
Formato que puede tener una URL

 

En relación con las URLs podemos diferenciar dos conceptos:

 

URI

URI = URL y/o URN

 

Mensajes

HTTP es un protocolo basado en la arquitectura cliente–servidor utilizando el navegador web. Normalmente el navegador envía un mensaje y el servidor responde en consecuencia a ese mensaje.

Se pueden diferenciar dos tipos de mensajes:

A la hora de intercambiar mensajes entre el cliente y el servidor existen diferentes métodos de petición:

Los mensajes que intercambian el cliente y el servidor tienen unos códigos de estado que indican si la petición ha sido aceptada o no.

 

HTTP

 

Sesiones persistentes

El protocolo HTTP carece de información de estado por lo que, a priori, ni el cliente ni el servidor conocen el estado en el que se encuentra la operación. Para gestionar estos estados se utiliza un sistema de almacenamiento externo que recibe el nombre de cookies.

Una cookie es un conjunto de datos que guarda el estado de la petición.

Consultándolas, el servidor puede saber qué servicios puede ofrecer al cliente.

Además las cookies permiten realizar un seguimiento de la navegación de los usuarios.

Podemos distinguir dos tipos de cookies:

 

Atendiendo al tipo de almacenamiento de las cookies se pueden diferenciar:

 

Los usos más comunes de las cookies son:

 

Una de las ventajas de las cookies es la liberación de las operaciones que debe realizar el servidor. Desde el punto de vista de la seguridad, las cookies son ficheros de textos que en principio no pueden realizar ninguna tarea y no pueden obtener información de un dispositivo. Sin embargo, con malas intenciones se puede extraer su información.

Existen diferentes formas de implementar las sesiones en el protocolo HTTP:

 

Las conexiones persistentes son aquellas que permiten que varias peticiones y respuestas utilicen la misma conexión TCP. Se utilizan por defecto en el protocolo HTTP 1.1. Toda aquella conexión que esté inactiva durante 30 segundos se cerrará por parte del servidor.

La principal ventaja de las conexiones persistentes es la reducción del número de conexiones. Esto se traduce en una reducción de los retrasos y gastos de memoria.

 

Sistema criptográfico

Un sistema criptográfico permite realizar transmisiones seguras entre cliente y servidor. El cifrado se centra en aplicar algoritmos sobre el mensaje original para obtener el mensaje cifrado.

Se pueden distinguir dos grupos diferentes de cifrados:

 

Funcionamiento del protocolo HTTPS

El protocolo HTTPS utiliza protocolos seguros como SSL/TLS para crear conexiones seguras entre el cliente y el servidor. Como el proceso de cifrado mediante claves asimétricas es muy lento, no se puede utilizar en la comunicación web. En su lugar HTTPS utiliza la combinación de clave asimétrica (SSL, Secure Sockets Layer) y simétrica (TLS, Transport Layer Security).

 

by Jose Manuel Pinillos